JSP_Apache FileUpload的两种上传方式介绍及应用,环境: tomcat5.6 commmons-fil
<%
final int maxRequestSize = 1024 * 1024 * 4; // 4MB
File uploadedFile = new File(getServletContext().getRealPath("https://www.xp.cn/") +
{
if(ServletFileUpload.isMultipartContent(request))
}
}
if(item.isFormField()) //regular form field
else
}
String fieldName = item.getFieldName();
String value = item.getString();
%>
// Create a factory for disk-based file items.
for(FileItem item : items)
commmons-io-2.4.jar
if(item.isFormField()) //regular form field
// Create a new file upload handler
%>
<%@page import="org.apache.commons.fileupload.*"%>
This page describes the traditional API of the commons fileupload library. The traditional API is a convenient approach. However, for ultimate performance, you might prefer the faster Streaming API.
<%@page import="java.util.List"%>
%>
{
<h1><%=name%> --> <%=value%></h1>
//fileupload02.htm
String name = item.getFieldName();
<input type="submit" value="Press"> to upload the file!
<%@page import="org.apache.commons.fileupload.*"%>
// file less than 10kb will be store in memory, otherwise in file system.
"fileupload" + File.separator + fieldName + "_" + fileName);
<html>
InputStream is = item.openStream();
// Parse the request
<%
}
// Check that we have a file upload request
环境:
Traditional API上传方式
//fileload01.htm
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
String fileName = item.getName();
Streaming API上传速度相对较快。因为它是利用内存保存上传的文件,节省了传统API将文件写入临时文件带来的开销。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
File uploadedFile = new File(getServletContext().getRealPath("https://www.xp.cn/") +
Streaming API上传方式
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="java.io.File"%>
</html>
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java"%>
<form method="POST" enctype="multipart/form-data" action="streamingapi.jsp">
request.setCharacterEncoding("UTF-8");
{ //file upload
// write file to disk and close outputstream.
<h1>upload file <%=uploadedFile.getName()%> done!</h1>
<h1><%=fieldName%> --> <%=Streams.asString(is)%></h1>
List<FileItem> items = upload.parseRequest(request); // FileUploadException
</body>
final File tmpDir = new File(getServletContext().getRealPath("https://www.xp.cn/") + "fileupload" + File.separator + "tmp");
<html>
JSP
FileItemStream item = iter.next();
</body>
%>
上传文件保存位置:fileupload
}
}
</form>
<%
//traditionalapi.jsp
临时文件夹:fileupload/tmp相对于网站根目录
upload.setSizeMax(maxRequestSize);
Streams.copy(is, os, true);
<!-- read a FileItemStream's content into a string. -->
ServletFileUpload upload = new ServletFileUpload(factory);
复制代码 代码如下:
{ //file upload<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java"%>
<form method="POST" enctype="multipart/form-data" action="traditionalapi.jsp">
{
// Create a new file upload handler
"fileupload" + File.separator + fieldName + "_" + fileName);
%>
{
request.setCharacterEncoding("UTF-8");
<body>
{
File to upload: <input type="file" size="40"><br/>
</form>
commmons-fileupload-1.3.jar
<input type="submit" value="Press"> to upload the file!
// Set overall request size constraint.
FileItemFactory factory = new DiskFileItemFactory(threshold, tmpDir);
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
item.write(uploadedFile);
//streamingapi.jsp
}
编码:UTF-8
复制代码 代码如下:
<h1>upload file <%=uploadedFile.getName()%> done!</h1>Traditional API vs Streaming API
<%@page import="java.util.List"%>
复制代码 代码如下:
OutputStream os = new FileOutputStream(uploadedFile);<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
File to upload: <input type="file" size="40"><br/>
else
tomcat5.6
}
可参考:
</html>
<%@page import="org.apache.commons.fileupload.util.Streams"%>
<%
<body>
final int threshold = 10240;
FileItemIterator iter = upload.getItemIterator(request);
String fieldName = item.getFieldName();
复制代码 代码如下:
String fileName = item.getName();while(iter.hasNext())
if(ServletFileUpload.isMultipartContent(request))
<%
<%@page import="java.io.*"%>
// Check that we have a file upload request
<%
{
相关热词: JSP
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/jsp/5685.shtml
